<?php

/**
 * 这是表 "{{admin}}" 的模型类。
 *
 * 下面是表 "{{admin}}" 中可用的列:
 * @property integer $admin_id
 * @property string $admin_username
 * @property string $admin_password
 * @property string $admin_email
 * @property integer $admin_shell
 * @property string $admin_creattime
 * @property string $admin_updatetime
 *
 * 下面是模型中可用的关联:
 * @property Photos[] $photoses
 * @property Post[] $posts
 */
class Admin extends CActiveRecord
{
    /**
     * 返回指定 AR 类的静态模型。
     * @param string $className 活动记录类的名字。
     * @return Admin静态模型类
     */
    public static function model($className=__CLASS__)
    {
        return parent::model($className);
    }

    /**
     * @return string 相关联的数据库表名。
     */
    public function tableName()
    {
        return '{{admin}}';
    }

    /**
     * @return array 模型属性的验证规则。
     */
    public function rules()
    {
        // 注意: 仅需为可能接受用户输入的属性定义规则。
        return array(
            array('admin_username, admin_password, admin_email', 'required'),
            array('admin_shell', 'numerical', 'integerOnly'=>true),
            array('admin_username, admin_password, admin_email', 'length','min'=>5, 'max'=>255),
            array('admin_updatetime,admin_creattime', 'safe'),
        );
    }

    /**
     * @return array 模型的关联。
     */
    public function relations()
    {
        return array(
            'photoses' => array(self::HAS_MANY, 'Photos', 'photo_autor'),
            'posts' => array(self::HAS_MANY, 'Post', 'post_autor'),
        );
    }

    /**
     * @return array 为属性自定义的标签。 (name=>label)
     */
    public function attributeLabels()
    {
		return array(
			'admin_id' => '管理员编号',
			'admin_username' => '管理员用户名',
			'admin_password' => '管理员密码',
			'admin_email' => '管理员邮箱',
			'admin_shell' => '管理员权限',
			'admin_creattime' => '账户创建时间',
			'admin_updatetime' => '账户更新时间',
		);    
	}
	/**
	 * 基于当前的检索/过滤条件，检索出符合条件的模型实例。
	 * @return CActiveDataProvider 可以基于当前的检索/过滤条件返回模型实例的数据提供者。
	 */
	public function search()
	{
		// 注意：请修改下面的代码，将不需要检索的属性移除。
		$criteria=new CDbCriteria;
		$criteria->compare('admin_id',$this->admin_id);
		$criteria->compare('admin_username',$this->admin_username,true);
		$criteria->compare('admin_password',$this->admin_password,true);
		$criteria->compare('admin_email',$this->admin_email,true);
		$criteria->compare('admin_shell',$this->admin_shell);
		$criteria->compare('admin_creattime',$this->admin_creattime,true);
		$criteria->compare('admin_updatetime',$this->admin_updatetime,true);
		return new CActiveDataProvider($this, array('criteria'=>$criteria));
	}
	
	public function checkAdminPassword($password){
		return md5($password) === $this->admin_password;
	}
}